1. Field of the Invention
The present invention relates generally to digital data and word processing systems and more particularly to apparatus for controlling operation of such systems.
2. Description of the Prior Art: FIG. 1
There has been an enormous increase in the power and reduction in the price of computer systems. One consequence of this development has been the rise of interactive computing, in which a user interacts directly with the computer system by means of a display device such as a cathode ray tube and an input device such as a keyboard or mouse. As the power of the available computers and display devices has increased and the technical sophistication of the users has decreased, easy and sophisticated interaction has become increasingly important. In the first interactive systems, the unit of interaction was a line of characters and the input device was the keyboard. Later, the unit of interaction became a screenful of text, and the input device was a keyboard with special function keys. Still later, the unit of interaction became a screen with graphics capabilities, and users could interact by means of a mouse as well as with the keyboard. Presently, the use of windows permits the user to interact with a number of virtual screens at once.
As the interaction with the user has grown more sophisticated, systems have been developed to make it easier for programmers to specify interactions. Originally, the programmer who wrote interactive programs had to have an intimate knowledge of the interactive hardware; later, logical interfaces were provided for the interactive hardware; still later, hardware-independent user interface systems were developed.
FIG. 1 is a block diagram of an interactive system with such a hardware-independent user interface system. The interactive system of FIG. 1 has three main components: user interface subsystem (UIS) 119, application programs 103, and data tranformation Primitives (DTPR) 131. UIS 119 is a library of routines which provide the applications programs with a high-level logical interface for user interactions with interactive hardware 129. The routines in UIS 119 receive user-destined inputs UDI 111 describing displays on DISP 125 from applications 103 and provide logical outputs describing inputs from the user on SDO 113. They use inputs UDI 111 to produce user-perceivable outputs UPO 121 to display device 125 and produce system-destined outputs SDO 113 from user-provided inputs UPI 123 from input device 127.
DTPR 131 is a library of routines and operating system functions which performs data transformations such as reading from and writing to a file, locating information in a data base, and performing communications functions. Again, the applications programs are provided with a high-level interface to these functions and to processing hardware 137, consisting of hardware such as disk drives 133 and links to networks 135. Input to DTPR 131 from applications 115 is problem input 115; the output is problem output 117.
Applications 103, finally, are the programs such as spread sheets, text editors, text formatters, and the like which the user employs to do his work. The routines (App) 105 making up these programs call routines in UIS 119 when they are interacting with the user and routines in DTPR 131 when they are doing data transformations. As might be expected from this, a large portion of the code in an App 105 is interactive code (IC) 107, which involves UIS 119, and another large portion is transformation code (TC) 109. Many of the Apps 105 are themselves primitive routines which are used by higher-level routines. For example, many user applications do some text editing, and in modern interactive systems, all applications which do text editing may use the same set of text editing primitive Apps 105.
Systems such as that of FIG. 1 have made it easier for programmers to provide sophisticated interactions, and by providing all programmers with the same set of high-level primitives, have increased the uniformity of the interactive interface in the system, but they leave one fundamental problem unsolved: each routine in Applications 103 is free to use the routines in UIS 119 as it sees fit. Interactive system 101 appears as a single consistent interactive system to its users only to the extent that the programmers who write Applications 103 follow a standard in their use of UIS 119. Nowhere in interactive system 101 is there an entity which represents the entire interactive system. This problem is solved by the present invention.